# print('8:00上课 新年快乐！')
# re 公交车牌
# 唯一的标识 黄色上衣
# '3abc3         qwertyuwetymnewqf'
# '         '  tymnewqf

# re.S 匹配换行  正则匹配不能换行
# '1234'
# '56789'
# '1234567'
# '0000000'
# 可以
# 56789  0000000
# 需要re.S
# 1234 56789    0000000  re.S

# match函数 判断整个数据是否是需要的数据 自带^
# import re
# str_data = '123ccc321 123aaa321'  # () 提取表达式内容
# data = re.match('321', str_data)
# print(data)


# search函数 在数据里面查找 找到了就直接返回 没有就返回None
# import re
# str_data = '123ccc321 123aaa321'  # () 提取表达式内容
# data = re.search('3(.*?)3', str_data)
# # print(data.group())
# print(data)

# findall函数  获取数据里面满足要求的所有数据
# import re
# str_data = '123ccc321 123aaa321'  # () 提取表达式内容
# data = re.findall('3(.*?)3', str_data)
# print(data)


# 7、compile 函数   编程正则表达式 让表达式可以重复多次使用
# |  或 匹配表达式的左边或者右边
import re
# re_data=re.compile('abc(.+?)abc|A(.+?)A|C(.+?)C')
# print(re_data.findall('abcXXXabc AaA'))
# re_data.match()
# re_data.search()



import re
# .代表通配符，除了\n不能匹配外，其它全部都能匹配，一个点代表一个字符
# str_data = '123321 123aaa321'  # () 提取表达式内容
# data = re.findall('3(.*?)3', str_data)
# print(data)
# .*? 惰性匹配 .*贪婪匹配

# ^代表字符串开头进行匹配，只能放在最前面
# str_data = '123abc321'
# data = re.findall('^12', str_data)
# print(data)


# $代表字符串结尾进行匹配，只能放在最后面
# str_data = '123abc321'
# data = re.findall('21$', str_data)
# print(data)

# *代表0到无穷次

# +代表1次到无穷次
# ?代表0次到1次

# {}区间代表自行控制多少次，{0,} == *，{1,} == +，{0,1} == ？，
# {6}代表6次，{1,6}代表1，2，3，4，5，6次

# 注意
import re
# a = '^123^'
# print(re.findall('^(\d+)^', a))
#
# print(re.findall('\^(\d+)\^', a))
